<?php

namespace plugin\admin\app\model;

/**
 * @property integer $id 主键(主键)
 * @property string $name 角色名
 * @property string $rules 权限
 * @property string $created_at 创建时间
 * @property string $updated_at 更新时间
 * @property integer $pid 上级id
 */
class Role extends Base
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'wa_roles';

    /**
     * The primary key associated with the table.
     *
     * @var string
     */
    protected $primaryKey = 'id';

    /**
     * @return mixed
     */
    public function getRuleIds()
    {
        return $this->rules ? explode(',', $this->rules) : [];
    }

    /**
     * 获取 父ID
     * @param $id
     * @return mixed
     */
    static protected function getPid($id): mixed
    {
        return self::query()->where('id', $id)->value('pid');
    }

    /**
     * 获取所有父ID，（包括自己）
     * @param $id
     * @return array
     * level => pid(父id)  -  最后一个是当前ID
     *  array (
     *  0 => 1,
     *  1 => 2,
     *  2 => 3,
     *  3 => 4,
     */
    public static function getAllParentsById($id): array
    {
        $pis[] = $id;
        while(true){
            $pid = self::getPid($id);
            if ($pid){
                array_unshift($pis,$pid);
                $id = $pid;
            }else{
                break;
            }
        }

        return $pis;
    }

}
